#ifndef ADMIN_MEMORIA_H
#define	ADMIN_MEMORIA_H

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int _iTamPagina; 
int _iTamMemoria;

//Puntero a la porcion de memoria que me devuelve el malloc
char * _cpMemoria;

//Puntero de inicio de la memoria usuario
void * _vpInicioMemoriaUsuario;

//Cantidad de frames de la memoria ficticia
int _iCantFrames;

//Cantidad de frames de la memoria ficticia
int _iCantPaginasMFT;

//Cantidad de frames libres
int _iCantFramesLibres;

//Variables para le manejo de la DPT
struct stuDPT * _stupDPT;
int _iCantEntradasDPT;

//Variables para le manejo de la MFT
struct stuMFT * _stupMFT;
int _iCantEntradasMFT;

//Estructura que contiene el nombre del proceso y las paginas que tiene asignadas
typedef struct stuDPT 
{
	long lPID;
	int  iCantPaginas;
	long lFrameMPT;
	struct stuNodoMPT * stupNodoMPT;
}stuDPT;

//Estructura que contiene correspondencia de los frames y las paginas
typedef struct stuNodoMPT 
{
	long lPagina;
	long lFrame;
}stuNodoMPT;

//Estructura que contiene los frames libres del sistema
typedef struct stuMFT 
{
	long lFrame;
	int iLibre; // Libre = 1 - Ocupado = 0
	void * vpInicio;
}stuMFT;

/*LISTADO DE FUNCIONES DEL ADMINISTRADOR*/
int ifnCrearMemoria(int);

#endif	/* ADMIN_MEMORIA.H */
